package com.cy.pj.common.pool;

import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

//@Scope("prototype")//prototype表示多例作用域，此类实例与Lazy无关，默认何时需要何时创建，并且不会储存到spring的容器中
@Scope//@Scope注解用于定义对象作用于，默认为单例（singleton）作用域（一个JVM内存中相同的Bean只能有一个-key相同的）
@Lazy//描述的类的对象可以延迟创建，何时需要何时创建（按需加载）
@Component

public class ObjectPool {
    public ObjectPool(){
        System.out.println("ObjectPool()");
    }
    @PostConstruct//注解描述的方法为生命周期初始化方法，在对象构建以后执行
    public void init(){
        System.out.println("init()");
    }
    @PreDestroy//注解描述的方法为生命周期销毁方法
    public void destiry(){
        System.out.println("destiry()");
    }
}
